The users of a Cloud Computing Environment (CCE) access some of their computing requirements dynamically. The computing requirements are not necessarily locally resident but are usually accessed across a network. The user uses the resource for the required time and releases these on completion. Thus the resources in this system are shared between a set of users. Thus resource optimization and hence cost optimization is achieved for all the customers and the different players in the Cloud Computing Environment (CCE).
To realize the above mentioned objectives, utility computing utilizes a number of components that provide computing to users, manage the usage and features requested by users and monitor and manage the different physical components in the environment. These components are spread over the three physical components in the environment, viz. a client device at the users end usually referred to as a Network Computer (NC), a Server Farm (SF) and the network (CLOUD) that connects these two components.
The Network Computer (NC) is a simple to use and low power consuming device that is capable of running local and remote applications. This device connects to a server farm to access the native Operating System (OS) applications required by the user. These applications are referred to as Remote Applications (RAPPS). The features in the Network Computer (NC) are configurable and are dynamically managed by the server farm. The server farm consists of two components. One component provides the features and functionality required by the users. The other component manages the complete environment. The network includes the physical network and the protocols that the client and servers use to communicate with each other.
Available Bandwidth (AVB) Between Two End Points:
To provide a predictable user experience for Cloud Computing Environment (CCE) is to adapt the set RAPPs that are made available to the user over the CLOUD, based on the average Available Bandwidth (AVB) between the Network Computer (NC) and the Server Farm (SF). Available Bandwidth (AVB) between two end points in a network is defined as the actual raw bit rate that the end points are successfully able to transfer between them at a given instant of time over the network. Available Bandwidth (AVB) may not necessarily be the same in each direction and it would be different for each direction if the set of links connecting the end points are asymmetric. Also, even for a particular direction, Available Bandwidth (AVB) between two end points may vary every instant based on congestion/cross-traffic in the network and is usually less than the provisioned bandwidth. Hence, it is recommended to use the Available Bandwidth (AVB) rather than the provisioned ones for choosing the set of Remote Applications (RAPPs) for Cloud Computing Environment (CCE) end users.
Good Available Bandwidth Measurement Tools (ABMT) are available to measure instantaneous Available Bandwidth (AVB) between two end points.
Basic Principle of Operation of ABMT:
Most of the Available Bandwidth Measurement Tools (ABMT) estimate the available bandwidth by sending trains/streams of probe IP (Internet Protocol) packets between the two end points/nodes (a sender and a receiver) under consideration. Each packet train consists of a mutually agreed upon number of probe packets. To measure the Available Bandwidth (AVB) in the direction from a sender end point to a receiver end point, these packet trains are sent at different rates from the sender to the receiver. The sender and receiver initially agree on a specific starting packet train rate based on past data or based on the provisioned bandwidth. This rate is then increased or decreased till the Available Bandwidth Measurement Tools (ABMT) converges to a specific range for the Available Bandwidth (AVB). Each packet train consists of a considerable number of probe packets. To maintain a specific transmission rate during a particular packet train, either the packet size (number of bytes within a packet) or the packet inter-transmission time is adjusted so as to achieve the desired rate of transmission per second. The present invention chooses an Available Bandwidth Measurement Tool (ABMT) that adjusts the packet inter-transmission time to achieve the desired rate of transmission per second. Usually, the sender and receiver put their respective timestamps inside each packet when the packets are sent and received respectively. The difference between these values would help the receiver in estimating the delay of the packet in transit (network). Normally, if the packet transmission rate is lesser than or equal to the average Available Bandwidth (AVB) in the cloud, then all packets of a particular train would roughly experience the same amount of transit delay in the network. However, if the packet transmission rate is increased beyond the average Available Bandwidth (AVB), delays of packets within a train start increasing, as packets would typically experience an additional variable queuing delay in intermediate network routers/switches and hence there would be an increasing trend in delay. If the packet transmission rate is increased even further, then beyond a point, the queues of routers/switches get full and they would drop the packets resulting in packet loss. Thus based on these three cases of delay trends between packets belonging to the same train, namely constant delay, variable increasing delay and packet loss, the receiver can conclude that the transmission rate is below, slightly higher and significantly higher than the average Available Bandwidth (AVB) respectively. The sender and receiver keep fine tuning the packet train transmission rate based on these trends till they converge onto a narrow range of estimated Available Bandwidth (AVB). But a drawback of the Available Bandwidth Measurement Tools (ABMT) is the significant amount of probe packet traffic introduced by these Available Bandwidth Measurement Tools (ABMT) into the network.